{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "x=np.random.rand(20)*10 # 在[0,10]范围内生成20个随机点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.36899354, 6.94640601, 1.12488242, 9.40842002, 2.69297082,\n",
       "       0.50897875, 8.35059026, 0.99436773, 3.73035212, 1.60650828,\n",
       "       1.30574422, 9.49581616, 5.66577803, 6.83992437, 2.10287921,\n",
       "       5.71770656, 9.37724065, 8.21786164, 3.08221275, 6.73743753])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "f=np.sin(x)*x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.34121232,  4.2766104 ,  1.01488792,  0.15389553,  1.1680065 ,\n",
       "        0.24801807,  7.34186755,  0.83369234, -2.07157565,  1.60548397,\n",
       "        1.26014613, -0.6739985 , -3.28004949,  3.61435647,  1.81216085,\n",
       "       -3.06366209,  0.44560096,  7.67978035,  0.18291395,  2.95632353])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "fit3_origin = np.polyfit(x,f,3) # 用3次多项式拟合x,f数组\n",
    "fit3=np.poly1d(fit3_origin) # 拟合完之后用这个函数来生成多项式对象\n",
    "fit4=np.poly1d(np.polyfit(x,f,4)) \n",
    "fit5=np.poly1d(np.polyfit(x,f,5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib import pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_all = np.arange(0,10,0.001)\n",
    "f_all = np.sin(x_all)*x_all\n",
    "fit3_all = fit3(x_all) # 生成多项式对象之后，获取x_all在这个多项式处的值\n",
    "fit4_all = fit4(x_all)\n",
    "fit5_all = fit5(x_all)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"Polynomial Fitting\")\n",
    "plt.xlabel(\"$x$\") \n",
    "plt.ylabel(\"$f(x)=x*sin(x)$\") \n",
    "plt.scatter(x,f,marker='o',c='blue',label='training points')\n",
    "plt.plot(x_all,f_all,c='gray',label='ground truth')\n",
    "plt.plot(x_all,fit3_all,c='green',label='degree 3')\n",
    "plt.plot(x_all,fit4_all,c='yellowgreen',label='degree 4')\n",
    "plt.plot(x_all,fit5_all,c='yellow',label='degree 5')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
